﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections.Generic;
using System.Linq.Expressions;
using System.Collections;
using System.Transactions;

#region Entidade_responsavel
namespace Distrackting.DataLayer
{
    public partial class Entidade_responsavel
    {
        public void setEntidade_responsavel(Entidade_responsavel p)
        {
            this.cod_entidade = p.cod_entidade;
            this.nome = p.nome;
            this.email = p.email;
            this.url = p.url;
         }
    }
}
#endregion


#region dataEntidade_responsavel
namespace Distrackting.DataLayer
{
    public class dataEntidade_responsavel
    {
        #region Methods
        public static Guid createEntidade_responsavel(Entidade_responsavel er)
        {

                try
                {
                dbDataDataContext dbData = new dbDataDataContext();
                        er.cod_entidade = System.Guid.NewGuid();
                        dbData.Entidade_responsavels.InsertOnSubmit(er);
                    
                    dbData.SubmitChanges();
                    return er.cod_entidade;
                }
                catch (Exception e)
                {
                    throw e;
                }
        }




        public static Entidade_responsavel getEntidade_responsavel(Guid guid)
        {
            try
            {
                if (guid == null) return null;
                dbDataDataContext dbData = new dbDataDataContext();

                Entidade_responsavel pnt = (from p in dbData.Entidade_responsavels
                             where p.cod_entidade == guid
                             select p).FirstOrDefault();
                return pnt;
            }
            catch (Exception e)
            {
                throw e;
            }
        }

        public static Boolean changeEntidade_responsavel(Entidade_responsavel p)
        {
            try
            {
                if (p == null)
                    return false;
                else
                {
                    dbDataDataContext dbData = new dbDataDataContext();
                    Entidade_responsavel res = dbData.Entidade_responsavels.FirstOrDefault(pnt => pnt.cod_entidade == p.cod_entidade);
                    if (res == null) return false;
                    else
                    {
                        res.setEntidade_responsavel(p);
                        dbData.SubmitChanges();
                        return true;
                    }
                }
            }
            catch (Exception e)
            {
                throw e;
            }
        }

        public static IQueryable<Entidade_responsavel> getEntidade_responsaveis()
        {
            try
            {
                dbDataDataContext dbData = new dbDataDataContext();
                return dbData.Entidade_responsavels;
            }
            catch (Exception e)
            {
                throw e;
            }
        }

        public static IQueryable<Entidade_responsavel> getEntidade_responsaveis(Expression<Func<Entidade_responsavel, bool>> whereClause)
        {
            try
            {
                dbDataDataContext dbData = new dbDataDataContext();
                return dbData.Entidade_responsavels.Where(whereClause);
            }
            catch (Exception e)
            {
                throw e;
            }
        }

        public static Boolean deleteEntidade_responsavel(Entidade_responsavel p)
        {
            try
            {
                dbDataDataContext dbData = new dbDataDataContext();
                if (dbData.Entidade_responsavels.Contains(p))
                {
                    Entidade_responsavel res = (from pnt in dbData.Entidade_responsavels
                                 where pnt.cod_entidade == p.cod_entidade
                                 select pnt).FirstOrDefault();
                    if (res == null)
                        return false;
                    else
                    {
                        dbData.Entidade_responsavels.DeleteOnSubmit(p);
                        dbData.SubmitChanges();
                        return true;
                    }
                }
                else return false;
            }
            catch (Exception e)
            {
                throw e;
            }
        }


        #endregion
    }
}
#endregion